package main

import "fmt"

// 参数传递中值类型、引用类型的问题
func main() {
	// 定义一个切片
	s1 := []int{1, 2, 3, 4}
	fmt.Println("s1修改前的数据：", s1) // 1 2 3 4
	updatee(s1)
	fmt.Println("s1修改后的数据：", s1) // 100 2 3 4
	// 如果参数是引用类型的，那么修改函数内的值，会影响函数外的值。因为两个变量指向同一个内存空间，修改任意一个都会导致另外一个发送变化

	// 值传递   每个变量参数都有自己的内存空间，拷贝
	// 引用传递 每个变量参数都指向同一个内存空间，指向，改变任意一个，其他的都会发生变化。

}

// 更新数组
func updatee(s2 []int) {
	fmt.Println("s2修改前的数据：", s2) // 1 2 3 4
	s2[0] = 100
	fmt.Println("s2修改后的数据：", s2) // 100 2 3 4
}
